#define _CRT_SECURE_NO_WARNINGS 1

//int missingNumber(int* nums, int numsSize)
//{
//	int x = 0;
//	int n = numsSize + 1;
//	int i = 0;
//
//	for (i = 0; i < n; ++i)
//	{
//		x ^= i;
//	}
//
//	for (i = 0; i < numsSize; ++i)
//	{
//		x ^= nums[i];
//	}
//
//	return x;
//}



//void rotate(int* nums, int numsSize, int k)
//{
//	for (int i = 0; i < k; ++i)
//	{
//		int tmp = nums[numsSize - 1];
//
//		for (int j = numsSize - 1; j > 0; --j)
//		{
//			nums[j] = nums[j - 1];
//		}
//
//		nums[0] = tmp;
//	}
//}


void reverse(int* nums, int left, int right)
{
	while (left < right)
	{
		int tmp = nums[left];
		nums[left] = nums[right];
		nums[right] = tmp;
		left++;
		right--;
	}
}

void rotate(int* nums, int numsSize, int k)
{
	if (k > numsSize)
	{
		k %= numsSize;
	}
	
	reverse(nums, 0, numsSize - 1);
	reverse(nums, 0, k - 1);
	reverse(nums, k, numsSize - 1);
}